package com.ruoyi.oa.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 考勤记录业务对象 oa_human_clock_count
 *
 * @author ruoyi
 * @date 2023-07-19
 */



@Data
@EqualsAndHashCode(callSuper = true)
public class OaHumanClockCountBo extends BaseEntity {

    /**
     * 主键
     */
    private String id;

    private String clockDate;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 职务
     */
    private String roleName;

    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 是否为外勤
     */
    private Boolean isOutside;
    /**
     * 考勤规则id
     */
    private String ruleId;

    /**
     * 规则名称
     */
    private String ruleName;


    /**
     * 班次
     */
    private String clockShift;

    /**
     * 最早
     */
    private Date startTime;

    /**
     * 最晚
     */
    private Date endTime;

    private String startStatus;


    private String endStatus;

    /**
     * 打卡次数
     */
    private Integer clockCount;

    /**
     * 标准工作时长
     */
    private Double standardWorkHour;


    private String clockList;


    /**
     * 实际工作时长
     */
    private Double actualWorkHour;

    /**
     * 假勤申请
     */
    private String applyName;

    /**
     * 校准状态
     */
    private String adjustName;

    /**
     * 异常次数
     */
    private Integer abnormalCount;

    /**
     * 迟到次数
     */
    private Integer lateCount;

    /**
     * 迟到时长
     */
    private Integer lateMinutes;

    /**
     * 早退次数
     */
    private Integer leaveCount;

    /**
     * 早退时长
     */
    private Integer leaveMinutes;

    /**
     * 旷工次数
     */
    private Integer absentCount;

    /**
     * 旷工时长
     */
    private Integer absentMinutes;

    /**
     * 缺卡次数
     */
    private Integer lackCount;

    /**
     * 缺卡时长
     */
    private Integer lackMinutes;


    /**
     * 地点异常次数
     */
    private Integer addressAbnormalCount;

    /**
     * 补卡次数
     */
    private Integer replaceCount;


    //查询条件
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    //查询条件
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * 异常状态: '':全部:'0':正常、'1':异常、'2':迟到、'3':早退、'4':缺卡、'5':旷工、'6':外勤
     */
    private String status;

    /**
     *
     */
    private String month;
}
